StarNEig Library  version v0.1-beta.4
A task-based library for solving nonsymmetric eigenvalue problems
expert.h File Reference

This file contains configuration structures and functions for the expert interface functions. More...

Go to the source code of this file.

Data Structures

struct  starneig_hessenberg_conf
 Hessenberg reduction configuration structure. More...
 
struct  starneig_schur_conf
 Schur reduction configuration structure. More...
 
struct  starneig_reorder_conf
 Eigenvalue reordering configuration structure. More...
 
struct  starneig_eigenvectors_conf
 Eigenvector computation configuration structure. More...
 

Hessenberg reduction

#define STARNEIG_HESSENBERG_DEFAULT_TILE_SIZE   -1
 Default tile size.
 
#define STARNEIG_HESSENBERG_DEFAULT_PANEL_WIDTH   -1
 Default panel width.
 
void starneig_hessenberg_init_conf (struct starneig_hessenberg_conf *conf)
 Initializes a Hessenberg reduction configuration structure with default parameters. More...
 

Schur reduction

#define STARNEIG_SCHUR_DEFAULT_INTERATION_LIMIT   -1
 Default iteration limit.
 
#define STARNEIG_SCHUR_DEFAULT_TILE_SIZE   -1
 Default tile size.
 
#define STARNEIG_SCHUR_DEFAULT_SMALL_LIMIT   -1
 Default sequential QR limit.
 
#define STARNEIG_SCHUR_DEFAULT_AED_WINDOW_SIZE   -1
 Default AED window size.
 
#define STARNEIG_SCHUR_DEFAULT_AED_SHIFT_COUNT   -1
 Default AED shift count.
 
#define STARNEIG_SCHUR_DEFAULT_AED_NIBBLE   -1
 Default nibble value.
 
#define STARNEIG_SCHUR_DEFAULT_AED_PARALLEL_SOFT_LIMIT   -1
 Default soft sequential AED limit.
 
#define STARNEIG_SCHUR_DEFAULT_AED_PARALLEL_HARD_LIMIT   -1
 Default hard sequential AED limit.
 
#define STARNEIG_SCHUR_DEFAULT_WINDOW_SIZE   -1
 Default bulge chasing window size.
 
#define STARNEIG_SCHUR_ROUNDED_WINDOW_SIZE   -2
 Rounded bulge chasing window.
 
#define STARNEIG_SCHUR_DEFAULT_SHIFTS_PER_WINDOW   -1
 Default number of shifts per bulge chasing window.
 
#define STARNEIG_SCHUR_DEFAULT_UPDATE_WIDTH   -1
 Default left-hand side update width.
 
#define STARNEIG_SCHUR_DEFAULT_UPDATE_HEIGHT   -1
 Default right-hand side update height.
 
#define STARNEIG_SCHUR_DEFAULT_THRESHOLD   -1
 Default deflation threshold.
 
#define STARNEIG_SCHUR_NORM_STABLE_THRESHOLD   -2
 Norm stable deflation threshold.
 
#define STARNEIG_SCHUR_LAPACK_THRESHOLD   -3
 LAPACK-style deflation threshold.
 
void starneig_schur_init_conf (struct starneig_schur_conf *conf)
 Initializes a Schur reduction configuration structure with default parameters. More...
 

Eigenvalue reordering

#define STARNEIG_REORDER_DEFAULT_UPDATE_WIDTH   -1
 Default left-hand side update task width.
 
#define STARNEIG_REORDER_DEFAULT_UPDATE_HEIGHT   -1
 Default right-hand side update task height.
 
#define STARNEIG_REORDER_DEFAULT_TILE_SIZE   -1
 Default tile size.
 
#define STARNEIG_REORDER_DEFAULT_VALUES_PER_CHAIN   -1
 Default number of selected eigenvalues per window.
 
#define STARNEIG_REORDER_DEFAULT_WINDOW_SIZE   -1
 Default default window size.
 
#define STARNEIG_REORDER_ROUNDED_WINDOW_SIZE   -2
 Default rounded window size.
 
#define STARNEIG_REORDER_DEFAULT_SMALL_WINDOW_SIZE   -1
 Default small window size.
 
#define STARNEIG_REORDER_DEFAULT_SMALL_WINDOW_THRESHOLD   -1
 Default small window threshold.
 
enum  starneig_reorder_plan_t { STARNEIG_REORDER_DEFAULT_PLAN = 1, STARNEIG_REORDER_ONE_PART_PLAN = 2, STARNEIG_REORDER_MULTI_PART_PLAN = 3 }
 Reordering plan enumerator. More...
 
enum  starneig_reorder_blueprint_t {
  STARNEIG_REORDER_DEFAULT_BLUEPRINT = 1, STARNEIG_REORDER_DUMMY_INSERT_A = 2, STARNEIG_REORDER_DUMMY_INSERT_B = 3, STARNEIG_REORDER_CHAIN_INSERT_A = 4,
  STARNEIG_REORDER_CHAIN_INSERT_B = 5, STARNEIG_REORDER_CHAIN_INSERT_C = 6, STARNEIG_REORDER_CHAIN_INSERT_D = 7, STARNEIG_REORDER_CHAIN_INSERT_E = 8,
  STARNEIG_REORDER_CHAIN_INSERT_F = 9
}
 Task insertion blueprint. More...
 
void starneig_reorder_init_conf (struct starneig_reorder_conf *conf)
 Initializes an eigenvalue reordering configuration structure with default parameters. More...
 

Eigenvectors

#define STARNEIG_EIGENVECTORS_DEFAULT_TILE_SIZE   -1
 Default tile size.
 
void starneig_eigenvectors_init_conf (struct starneig_eigenvectors_conf *conf)
 Initializes an eigenvectors configuration structure with default parameters. More...
 

Detailed Description

This file contains configuration structures and functions for the expert interface functions.

Author
Mirko Myllykoski (mirko.nosp@m.m@cs.nosp@m..umu..nosp@m.se), Umeå University
Angelika Schwarz (angie.nosp@m.s@cs.nosp@m..umu..nosp@m.se), Umeå University

LICENSE

Copyright (c) 2019, Umeå Universitet

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
  3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.