⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xmlmatrix.cpp

📁 Dolfin provide a high-performance linear algebra library
💻 CPP
字号:
// Copyright (C) 2003-2006 Anders Logg.// Licensed under the GNU LGPL Version 2.1.//// First added:  2003-02-17// Last changed: 2006-05-23#include <dolfin/Matrix.h>#include <dolfin/XMLMatrix.h>using namespace dolfin;//-----------------------------------------------------------------------------XMLMatrix::XMLMatrix(Matrix& matrix) : XMLObject(), A(matrix){  state = OUTSIDE;  row = 0;}//-----------------------------------------------------------------------------void XMLMatrix::startElement(const xmlChar *name, const xmlChar **attrs){  switch ( state )  {  case OUTSIDE:        if ( xmlStrcasecmp(name, (xmlChar *) "sparsematrix") == 0 )    {      readMatrix(name, attrs);      state = INSIDE_MATRIX;    }        break;      case INSIDE_MATRIX:        if ( xmlStrcasecmp(name, (xmlChar *) "row") == 0 )    {      readRow(name, attrs);      state = INSIDE_ROW;    }        break;      case INSIDE_ROW:        if ( xmlStrcasecmp(name, (xmlChar *) "element") == 0 )      readEntry(name, attrs);        break;      default:    ;  }}//-----------------------------------------------------------------------------void XMLMatrix::endElement(const xmlChar *name){  switch ( state )  {  case INSIDE_MATRIX:        if ( xmlStrcasecmp(name,(xmlChar *) "sparsematrix") == 0 )      state = DONE;        break;      case INSIDE_ROW:        if ( xmlStrcasecmp(name,(xmlChar *) "row") == 0 )      state = INSIDE_MATRIX;        break;      default:    ;  }}//-----------------------------------------------------------------------------void XMLMatrix::readMatrix(const xmlChar *name, const xmlChar **attrs){  // Parse values  uint M = parseInt(name, attrs, "rows");  uint N = parseInt(name, attrs, "columns");  // Set values  A.init(M, N);}//-----------------------------------------------------------------------------void XMLMatrix::readRow(const xmlChar *name, const xmlChar **attrs){  // FIXME: update to new format  error("This function needs to be updated to the new format.");  /*  // Set default values  row = 0;  int size = 0;    // Parse values  parseIntegerRequired(name, attrs, "row",  row);  parseIntegerRequired(name, attrs, "size", size);  // Set values  A.initrow(row, size);  */}//-----------------------------------------------------------------------------void XMLMatrix::readEntry(const xmlChar *name, const xmlChar **attrs){  error("XMLMatrix::readEntry needs to updated for new matrix element access.");/*  // Parse values  uint column = parseUnsignedInt(name, attrs, "column");  real value  = parseReal(name, attrs, "value");    // FIXME: update to matrix element access  // Set values  A(row, column) = value;*/}//-----------------------------------------------------------------------------

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -