anpcpp 0.4.0
Analytic Network Process computational library
Loading...
Searching...
No Matches
Classes | Namespaces | Enumerations | Functions | Variables
rowsens.hpp File Reference

ANP row sensitivity and influence (ported from pyanp.rowsens). More...

#include <cstddef>
#include <map>
#include <optional>
#include <string>
#include <vector>
#include "anpcpp/limit_matrix.hpp"
#include "anpcpp/matrix.hpp"

Go to the source code of this file.

Classes

struct  anpcpp::P0Mode
 (p_0) selection for row_adjust. More...
 
struct  anpcpp::InfluenceRawEntry
 One alternative's raw (fixed-distance) influence result. More...
 
struct  anpcpp::InfluenceRankEntry
 Rank-influence result for one row (or one alternative under a fixed Wrt). More...
 
struct  anpcpp::InfluenceMarginalEntry
 Smart-(p_0) marginal influence for one row or alternative. More...
 
struct  anpcpp::InfluenceTotalEntry
 Fixed-distance total influence for one row (pyanp influence_fixed Total). More...
 

Namespaces

namespace  anpcpp
 Analytic Network Process computational library.
 

Enumerations

enum class  anpcpp::P0ModeKind { anpcpp::Direct , anpcpp::Smart , anpcpp::OriginalWeight }
 How resting parameter (p_0) is chosen for row sensitivity. More...
 

Functions

Matrix anpcpp::row_adjust (const Matrix &mat, std::size_t row, double p, const P0Mode &p0mode=P0Mode::Direct(0.5), const std::vector< std::size_t > &cluster_nodes={})
 Adjusts row row of scaled supermatrix mat to parameter p.
 
double anpcpp::smart_p0 (const Matrix &mat, std::size_t row, std::size_t cont_alt, const std::vector< std::size_t > &cluster_nodes={}, const LimitMatrixOptions &options={})
 Smart resting (p_0) making score of cont_alt continuous at (p_0).
 
Vector anpcpp::priority_after_row_adjust (const Matrix &mat, std::size_t row, double p, const P0Mode &p0mode=P0Mode::Direct(0.5), const std::vector< std::size_t > &cluster_nodes={}, const LimitMatrixOptions &options={}, bool normalize_to_orig=true)
 Priorities after row adjust (pyanp row_adjust_priority, normalize_to_orig).
 
Vector anpcpp::influence_marginal (const Matrix &mat, std::size_t row, double p0, int left_or_right=0, double delta=1e-6, const std::vector< std::size_t > &influence_nodes={}, const std::vector< std::size_t > &cluster_nodes={}, const LimitMatrixOptions &options={})
 Marginal influence (finite difference) at a direct (p_0).
 
std::vector< InfluenceMarginalEntryanpcpp::influence_marginal_smart (const Matrix &mat, std::size_t row, const std::vector< std::size_t > &influence_nodes, const std::vector< std::string > &names, const std::vector< std::size_t > &cluster_nodes={}, double delta=1e-6, const LimitMatrixOptions &options={})
 Per-alternative smart-(p_0) marginal influence (single value each).
 
std::vector< InfluenceRawEntryanpcpp::influence_raw (const Matrix &mat, std::size_t row, const std::vector< std::size_t > &influence_nodes, const std::vector< std::string > &names, double delta_up=0.1, double delta_down=0.1, double p0=0.5, const std::vector< std::size_t > &cluster_nodes={}, const LimitMatrixOptions &options={})
 Raw fixed-distance influence table (original / up / down scores).
 
std::vector< InfluenceRankEntryanpcpp::influence_rank (const Matrix &mat, std::size_t row, const std::vector< std::size_t > &influence_nodes, const std::vector< std::string > &names, const std::vector< std::size_t > &cluster_nodes={}, double error=1e-5, int round_to_decimal=5, const LimitMatrixOptions &options={})
 Rank influence score per alternative (max of upper/lower searches).
 
InfluenceTotalEntry anpcpp::influence_total_row (const Matrix &mat, std::size_t row, const std::vector< std::size_t > &influence_nodes, double delta=0.25, double p0=0.5, const std::vector< std::size_t > &cluster_nodes={}, const LimitMatrixOptions &options={})
 Fixed-distance total influence for one row (L1 and max of abs diffs).
 
std::vector< InfluenceTotalEntryanpcpp::influence_total (const Matrix &mat, const std::vector< std::size_t > &rows, const std::vector< std::string > &row_names, const std::vector< std::size_t > &influence_nodes, double delta=0.25, double p0=0.5, const std::vector< std::size_t > &cluster_nodes={}, const LimitMatrixOptions &options={})
 Per-row total influence (pyanp multi-row influence_fixed Totals).
 
Vector anpcpp::perspective (const Matrix &mat, std::size_t row, const P0Mode &p0mode=P0Mode::Direct(0.5), const std::vector< std::size_t > &cluster_nodes={}, const LimitMatrixOptions &options={}, bool normalize_to_orig=true)
 Perspective of one row: limit as p approaches 1 of row sensitivity.
 
Matrix anpcpp::perspective_matrix (const Matrix &mat, const std::vector< std::size_t > &rows={}, const P0Mode &p0mode=P0Mode::Direct(0.5), const std::vector< std::size_t > &cluster_nodes={}, const LimitMatrixOptions &options={}, bool normalize_to_orig=true)
 Perspective matrix: column j is perspective for rows[j].
 

Variables

constexpr double anpcpp::kPerspectivePCoarse = 1.0 - 1e-6
 Near-1 p values for limit-as-p-approaches-1 perspective (never exactly 1).
 
constexpr double anpcpp::kPerspectiveAgreeTol = 1e-6
 Max L-inf gap between coarse/fine before refining further.
 

Detailed Description

ANP row sensitivity and influence (ported from pyanp.rowsens).