Package: glpkAPI 1.3.4
glpkAPI: R Interface to C API of GLPK
R Interface to C API of GLPK, depends on GLPK Version >= 4.42.
Authors:
glpkAPI_1.3.4.tar.gz
glpkAPI_1.3.4.zip(r-4.5)glpkAPI_1.3.4.zip(r-4.4)glpkAPI_1.3.4.zip(r-4.3)
glpkAPI_1.3.4.tgz(r-4.4-x86_64)glpkAPI_1.3.4.tgz(r-4.3-x86_64)
glpkAPI_1.3.4.tar.gz(r-4.5-noble)glpkAPI_1.3.4.tar.gz(r-4.4-noble)
glpkAPI.pdf |glpkAPI.html✨
glpkAPI/json (API)
NEWS
# Install 'glpkAPI' in R: |
install.packages('glpkAPI', repos = c('https://mihai-sysbio.r-universe.dev', 'https://cloud.r-project.org')) |
This package does not link to any Github/Gitlab/R-forge repository. No issue tracker or development information is available.
Last updated 2 years agofrom:de7900110b. Checks:OK: 3 NOTE: 4. Indexed: yes.
Target | Result | Date |
---|---|---|
Doc / Vignettes | OK | Nov 18 2024 |
R-4.5-win-x86_64 | NOTE | Nov 18 2024 |
R-4.5-linux-x86_64 | NOTE | Nov 18 2024 |
R-4.4-win-x86_64 | NOTE | Nov 18 2024 |
R-4.4-mac-x86_64 | NOTE | Nov 18 2024 |
R-4.3-win-x86_64 | OK | Nov 18 2024 |
R-4.3-mac-x86_64 | OK | Nov 18 2024 |
Exports:addColsGLPKaddRowsGLPKadvBasisGLPKbfExistsGLPKbfUpdatedGLPKBINARIZEBR_TECHBT_TECHCB_FUNCCB_SIZEcheckDupGLPKCLQ_CUTScopyProbGLPKCOV_CUTScpxBasisGLPKcreateIndexGLPKdelColsGLPKdeleteIndexGLPKdelProbGLPKdelRowsGLPKEPS_TOLeraseProbGLPKfactorizeGLPKfindColGLPKfindRowGLPKFP_HEURgetBfcpGLPKgetBheadGLPKgetCbindGLPKgetColDualGLPKgetColDualIptGLPKgetColKindGLPKgetColLowBndGLPKgetColNameGLPKgetColPrimGLPKgetColPrimIptGLPKgetColsDualGLPKgetColsDualIptGLPKgetColsKindGLPKgetColsLowBndsGLPKgetColsPrimGLPKgetColsPrimIptGLPKgetColsStatGLPKgetColStatGLPKgetColsUppBndsGLPKgetColTypeGLPKgetColUppBndGLPKgetDualStatGLPKgetInteriorParmGLPKgetMatColGLPKgetMatRowGLPKgetMIPParmGLPKgetNumBinGLPKgetNumColsGLPKgetNumIntGLPKgetNumNnzGLPKgetNumRowsGLPKgetObjCoefGLPKgetObjCoefsGLPKgetObjDirGLPKgetObjNameGLPKgetObjValGLPKgetObjValIptGLPKgetPrimStatGLPKgetProbNameGLPKgetRbindGLPKgetRiiGLPKgetRowDualGLPKgetRowDualIptGLPKgetRowLowBndGLPKgetRowNameGLPKgetRowPrimGLPKgetRowPrimIptGLPKgetRowsDualGLPKgetRowsDualIptGLPKgetRowsLowBndsGLPKgetRowsPrimGLPKgetRowsPrimIptGLPKgetRowsStatGLPKgetRowStatGLPKgetRowsTypesGLPKgetRowsUppBndsGLPKgetRowTypeGLPKgetRowUppBndGLPKgetSimplexParmGLPKgetSjjGLPKgetSolStatGLPKgetSolStatIptGLPKgetUnbndRayGLPKGLP_BF_BGGLP_BF_FTGLP_BF_GRGLP_BR_DTHGLP_BR_FFVGLP_BR_LFVGLP_BR_MFVGLP_BR_PCHGLP_BSGLP_BT_BFSGLP_BT_BLBGLP_BT_BPHGLP_BT_DFSGLP_BVGLP_CVGLP_DBGLP_DN_BRNCHGLP_DUALGLP_DUALPGLP_EBADBGLP_EBOUNDGLP_ECONDGLP_EDATAGLP_EFAILGLP_EINSTABGLP_EITLIMGLP_EMIPGAPGLP_ENOCVGGLP_ENODFSGLP_ENOFEASGLP_ENOPFSGLP_EOBJLLGLP_EOBJULGLP_ERANGEGLP_EROOTGLP_ESINGGLP_ESTOPGLP_ETMLIMGLP_FEASGLP_FRGLP_FXGLP_IBINGOGLP_IBRANCHGLP_ICUTGENGLP_IHEURGLP_INFEASGLP_IPREPROGLP_IPTGLP_IROWGENGLP_ISELECTGLP_IVGLP_KKT_CSGLP_KKT_DBGLP_KKT_DEGLP_KKT_PBGLP_KKT_PEGLP_LOGLP_MAXGLP_MINGLP_MIPGLP_MPS_DECKGLP_MPS_FILEGLP_MSG_ALLGLP_MSG_DBGGLP_MSG_ERRGLP_MSG_OFFGLP_MSG_ONGLP_NFGLP_NLGLP_NO_BRNCHGLP_NOFEASGLP_NSGLP_NUGLP_OFFGLP_ONGLP_OPTGLP_ORD_AMDGLP_ORD_NONEGLP_ORD_QMDGLP_ORD_SYMAMDGLP_PP_ALLGLP_PP_NONEGLP_PP_ROOTGLP_PRIMALGLP_PT_PSEGLP_PT_STDGLP_RF_CLQGLP_RF_COVGLP_RF_CUTGLP_RF_GMIGLP_RF_LAZYGLP_RF_MIRGLP_RF_REGGLP_RT_HARGLP_RT_STDGLP_SF_2NGLP_SF_AUTOGLP_SF_EQGLP_SF_GMGLP_SF_SKIPGLP_SOLGLP_UNBNDGLP_UNDEFGLP_UPGLP_UP_BRNCHglpkPointerglpkPtrTypeglpkPtrType<-GMI_CUTSinitProbGLPKisGLPKpointerisNULLpointerGLPKisTRWKSpointerIT_LIMloadMatrixGLPKLU_SIZEMAX_GROMETHMIP_GAPmipColsValGLPKmipColValGLPKmipObjValGLPKmipRowsValGLPKmipRowValGLPKmipStatusGLPKMIR_CUTSmplAllocWkspGLPKmplBuildProbGLPKmplFreeWkspGLPKmplGenerateGLPKmplPostsolveGLPKmplReadDataGLPKmplReadModelGLPKMSG_LEVNFS_MAXNRS_MAXOBJ_LLOBJ_ULORD_ALGOUT_DLYOUT_FRQPIV_LIMPIV_TOLPP_TECHPRESOLVEPRICINGprintIptGLPKprintMIPGLPKprintRangesGLPKprintSolGLPKR_TESTreadIptGLPKreadLPGLPKreadMIPGLPKreadMPSGLPKreadProbGLPKreadSolGLPKreturn_codeGLPKRS_SIZEscaleProbGLPKsetBfcpGLPKsetColBndGLPKsetColKindGLPKsetColNameGLPKsetColsBndsGLPKsetColsBndsObjCoefsGLPKsetColsKindGLPKsetColsNamesGLPKsetColStatGLPKsetDefaultIptParmGLPKsetDefaultMIPParmGLPKsetDefaultSmpParmGLPKsetInteriorParmGLPKsetMatColGLPKsetMatRowGLPKsetMIPParmGLPKsetObjCoefGLPKsetObjCoefsGLPKsetObjDirGLPKsetObjNameGLPKsetProbNameGLPKsetRhsZeroGLPKsetRiiGLPKsetRowBndGLPKsetRowNameGLPKsetRowsBndsGLPKsetRowsNamesGLPKsetRowStatGLPKsetSimplexParmGLPKsetSjjGLPKsolveInteriorGLPKsolveMIPGLPKsolveSimplexExactGLPKsolveSimplexGLPKsortMatrixGLPKstatus_codeGLPKstdBasisGLPKSUHLtermOutGLPKTM_LIMTOL_BNDTOL_DJTOL_INTTOL_OBJTOL_PIVTYPEunscaleProbGLPKUPD_TOLversionGLPKwarmUpGLPKwriteIptGLPKwriteLPGLPKwriteMIPGLPKwriteMPSGLPKwriteProbGLPKwriteSolGLPK
Dependencies:
Package glpkAPI -- Quick Start
Rendered fromglpkAPI.Rnw
usingutils::Sweave
on Nov 18 2024.Last update: 2018-09-14
Started: 2012-03-15
R package for using the GNU Linear Programming Toolkit (GLPK) using MathProg or the API
Rendered fromglpk-gmpl-intro.Rnw
usingutils::Sweave
on Nov 18 2024.Last update: 2018-09-14
Started: 2015-01-05
Readme and manuals
Help Manual
Help page | Topics |
---|---|
R Interface to C API of GLPK | glpkAPI-package glpkAPI |
Add Columns to a GLPK Problem Object | addColsGLPK glp_add_cols |
Add Rows to a GLPK Problem Object | addRowsGLPK glp_add_rows |
Contruct Advanced Initial LP Basis | advBasisGLPK glp_adv_basis |
Check if the basis factorization exists | bfExistsGLPK glp_bf_exists |
Check if the basis factorization has been updated | bfUpdatedGLPK glp_bf_updated |
Check for Duplicate Elements in Sparse Matrix | checkDupGLPK glp_check_dup |
Copy problem object content | copyProbGLPK glp_copy_prob |
Construct Bixby's initial LP basis | cpxBasisGLPK glp_cpx_basis |
Create the Name Index | createIndexGLPK glp_create_index |
Delete Columns from Problem Object | delColsGLPK glp_del_cols |
Delete the Name Index | deleteIndexGLPK glp_delete_index |
Delete Problem Object | delProbGLPK glp_delete_prob |
Delete Rows from Problem Object | delRowsGLPK glp_del_rows |
Erase problem object content | eraseProbGLPK glp_erase_prob |
Compute the basis factorization | factorizeGLPK glp_factorize |
Find Column by its Name | findColGLPK glp_find_col |
Find Row by its Name | findRowGLPK glp_find_row |
Retrieve Basis Factorization Control parameters | getBfcpGLPK glp_get_bfcp |
Retrieve Basis Header Information | getBheadGLPK glp_get_bhead |
Retrieve Column Index in the Basis Header | getCbindGLPK glp_get_col_bind |
Retrieve Column Dual Value | getColDualGLPK glp_get_col_dual |
Retrieve Column Dual Value | getColDualIptGLPK glp_ipt_col_dual |
Retrieve Column Kind | getColKindGLPK glp_get_col_kind |
Retrieve Column Lower Bound | getColLowBndGLPK glp_get_col_lb |
Retrieve Column Name | getColNameGLPK glp_get_col_name |
Retrieve Column Primal Value | getColPrimGLPK glp_get_col_prim |
Retrieve Column Primal Value | getColPrimIptGLPK glp_ipt_col_prim |
Retrieve Column Dual Value of all Columns | getColsDualGLPK |
Retrieve Column Dual Value of all Columns | getColsDualIptGLPK |
Retrieve Column Kind | getColsKindGLPK |
Retrieve Lower Bounds of Specified Columns | getColsLowBndsGLPK |
Retrieve all Column Primal Values | getColsPrimGLPK |
Retrieve all Column Primal Values | getColsPrimIptGLPK |
Retrieve Column Status of all Columns | getColsStatGLPK |
Retrieve Column Status | getColStatGLPK glp_get_col_stat |
Retrieve Upper Bounds of Specified Columns | getColsUppBndsGLPK |
Retrieve Column Type | getColTypeGLPK glp_get_col_type |
Retrieve Column Upper Bound | getColUppBndGLPK glp_get_col_ub |
Retrieve Status of Dual Basic Solution | getDualStatGLPK glp_get_dual_stat |
Retrives the Control Parameters for the Interior-point Method. | getInteriorParmGLPK |
Retrieves Column j of the Constraint Matrix. | getMatColGLPK glp_get_mat_col |
Retrieves Row i of the Constraint Matrix. | getMatRowGLPK glp_get_mat_row |
Retrives the Control Parameters for MIP. | getMIPParmGLPK |
Retrieve Number of Binary Columns | getNumBinGLPK glp_get_num_bin |
Retrieve Number of Columns | getNumColsGLPK glp_get_num_cols |
Retrieve Number of Integer Columns | getNumIntGLPK glp_get_num_int |
Retrieve the Number of Constraint Coefficients | getNumNnzGLPK glp_get_num_nz |
Retrieve Number of Rows | getNumRowsGLPK glp_get_num_rows |
Retrieve Objective Coefficient or Constant Term | getObjCoefGLPK glp_get_obj_coef |
Retrieve Objective Coefficients at Specified Columns and/or Constant Term | getObjCoefsGLPK |
Retrieve Optimization Direction Flag | getObjDirGLPK glp_get_obj_dir |
Retrieve Objective Function Name | getObjNameGLPK glp_get_obj_name |
Retrieve Objective Value | getObjValGLPK glp_get_obj_val |
Retrieve Objective Value | getObjValIptGLPK glp_ipt_obj_val |
Retrieve Status of Primal Basic Solution | getPrimStatGLPK glp_get_prim_stat |
Retrieve Problem Name | getProbNameGLPK glp_get_prob_name |
Retrieve Row Index in the Basis Header | getRbindGLPK glp_get_row_bind |
Retrieve row scale factor | getRiiGLPK glp_get_rii |
Retrieve Row Dual Value | getRowDualGLPK glp_get_row_dual |
Retrieve Row Dual Value | getRowDualIptGLPK glp_ipt_row_dual |
Retrieve Row Lower Bound | getRowLowBndGLPK glp_get_row_lb |
Retrieve Row Name | getRowNameGLPK glp_get_row_name |
Retrieve Row Primal Value | getRowPrimGLPK glp_get_row_prim |
Retrieve Row Primal Value | getRowPrimIptGLPK glp_ipt_row_prim |
Retrieve Row Dual Values of all Rows | getRowsDualGLPK |
Retrieve Row Dual Value of all Rows | getRowsDualIptGLPK |
Retrieve Lower Bounds of Specified Rows | getRowsLowBndsGLPK |
Retrieve Row Primal Value of all Rows | getRowsPrimGLPK |
Retrieve Row Primal Value of all Rows | getRowsPrimIptGLPK |
Retrieve Row Status of all Rows | getRowsStatGLPK |
Retrieve Row Status | getRowStatGLPK glp_get_row_stat |
Retrieve Types of Specified Constraints (Rows) | getRowsTypesGLPK |
Retrieve Upper Bounds of Specified Rows | getRowsUppBndsGLPK |
Retrieve Row Type | getRowTypeGLPK glp_get_row_type |
Retrieve Row Upper Bound | getRowUppBndGLPK glp_get_row_ub |
Retrives the Control Parameters for the Simplex Method. | getSimplexParmGLPK |
Retrieve column scale factor | getSjjGLPK glp_get_sjj |
Determine Generic Status of the Basic Soluton | getSolStatGLPK glp_get_status |
Determine Solution Status | getSolStatIptGLPK glp_ipt_status |
Determine Variable Causing Unboundedness | getUnbndRayGLPK glp_get_unbnd_ray |
Constants, Return and Status Codes of GLPK | BINARIZE BR_TECH BT_TECH CB_FUNC CB_SIZE CLQ_CUTS constantsGLPK COV_CUTS EPS_TOL FP_HEUR glpkConstants glpk_Constants GLP_BF_BG GLP_BF_BTF GLP_BF_FT GLP_BF_GR GLP_BF_LUF GLP_BR_DTH GLP_BR_FFV GLP_BR_LFV GLP_BR_MFV GLP_BR_PCH GLP_BS GLP_BT_BFS GLP_BT_BLB GLP_BT_BPH GLP_BT_DFS GLP_BV GLP_CV GLP_DB GLP_DN_BRNCH GLP_DUAL GLP_DUALP GLP_EBADB GLP_EBOUND GLP_ECOND GLP_EDATA GLP_EFAIL GLP_EINSTAB GLP_EITLIM GLP_EMIPGAP GLP_ENOCVG GLP_ENODFS GLP_ENOFEAS GLP_ENOPFS GLP_EOBJLL GLP_EOBJUL GLP_ERANGE GLP_EROOT GLP_ESING GLP_ESTOP GLP_ETMLIM GLP_FEAS GLP_FR GLP_FX GLP_IBINGO GLP_IBRANCH GLP_ICUTGEN GLP_IHEUR GLP_INFEAS GLP_IPREPRO GLP_IPT GLP_IROWGEN GLP_ISELECT GLP_IV GLP_KKT_CS GLP_KKT_DB GLP_KKT_DE GLP_KKT_PB GLP_KKT_PE GLP_LO GLP_MAX GLP_MIN GLP_MIP GLP_MPS_DECK GLP_MPS_FILE GLP_MSG_ALL GLP_MSG_DBG GLP_MSG_ERR GLP_MSG_OFF GLP_MSG_ON GLP_NF GLP_NL GLP_NOFEAS GLP_NO_BRNCH GLP_NS GLP_NU GLP_OFF GLP_ON GLP_OPT GLP_ORD_AMD GLP_ORD_NONE GLP_ORD_QMD GLP_ORD_SYMAMD GLP_PP_ALL GLP_PP_NONE GLP_PP_ROOT GLP_PRIMAL GLP_PT_PSE GLP_PT_STD GLP_RF_CLQ GLP_RF_COV GLP_RF_CUT GLP_RF_GMI GLP_RF_LAZY GLP_RF_MIR GLP_RF_REG GLP_RT_HAR GLP_RT_STD GLP_SF_2N GLP_SF_AUTO GLP_SF_EQ GLP_SF_GM GLP_SF_SKIP GLP_SOL GLP_UNBND GLP_UNDEF GLP_UP GLP_UP_BRNCH GMI_CUTS IT_LIM LU_SIZE MAX_GRO METH MIP_GAP MIR_CUTS MSG_LEV NFS_MAX NRS_MAX OBJ_LL OBJ_UL ORD_ALG OUT_DLY OUT_FRQ PIV_LIM PIV_TOL PP_TECH PRESOLVE PRICING RS_SIZE R_TEST SUHL TM_LIM TOL_BND TOL_DJ TOL_INT TOL_OBJ TOL_PIV TYPE UPD_TOL |
Class '"glpkPtr"' | glpkPointer glpkPointer,glpkPtr-method glpkPtr glpkPtr-class glpkPtrType glpkPtrType,glpkPtr-method glpkPtrType<- glpkPtrType<-,glpkPtr-method isGLPKpointer isGLPKpointer,glpkPtr-method isNULLpointerGLPK isNULLpointerGLPK,glpkPtr-method isTRWKSpointer isTRWKSpointer,glpkPtr-method |
Create a GLPK Problem Object | glp_create_prob initProbGLPK |
Load/Replace the Whole Constraint Matrix | glp_load_matrix loadMatrixGLPK |
Retrieve Column Value of all Columns | mipColsValGLPK |
Retrieve Column Value | glp_mip_col_val mipColValGLPK |
Retrieve Objective Value | glp_mip_obj_val mipObjValGLPK |
Retrieve Row Value of all Rows | mipRowsValGLPK |
Retrieve Row Value | glp_mip_row_val mipRowValGLPK |
Determine Status of MIP Solution | glp_mip_status mipStatusGLPK |
Allocate Translator Workspace | glp_mpl_alloc_wksp mplAllocWkspGLPK |
Build Problem Instance From Model | glp_mpl_build_prob mplBuildProbGLPK |
Free Translator Workspace | glp_mpl_free_wksp mplFreeWkspGLPK |
Generate the Model | glp_mpl_generate mplGenerateGLPK |
Postsolve Model | glp_mpl_postsolve mplPostsolveGLPK |
Read and Translate Data Section | glp_mpl_read_data mplReadDataGLPK |
Read and Translate Model Section | glp_mpl_read_model mplReadModelGLPK |
Write Interior-Point Solution in Printable Format | glp_print_ipt printIptGLPK |
Write Interior-Point Solution in Printable Format | glp_print_mip printMIPGLPK |
Print Sensitivity Analysis Report | glp_print_ranges printRangesGLPK |
Write Basic Solution in Printable Format | glp_print_sol printSolGLPK |
Read Interior-Point Solution From Text File | glp_read_ipt readIptGLPK |
Read Problem Data in CPLEX LP Format | glp_read_lp readLPGLPK |
Read MIP Solution From Text File | glp_read_mip readMIPGLPK |
Read Problem Data in MPS Format | glp_read_mps readMPSGLPK |
Read Problem Data in GLPK F ormat | glp_read_prob readProbGLPK |
Read Basic Solution From Text File | glp_read_sol readSolGLPK |
Translates a GLPK Return Code into a Human Readable String | return_codeGLPK |
Scale Problem Data | glp_scale_prob scaleProbGLPK |
Change Basis Factorization Control Parameters | glp_set_bfcp setBfcpGLPK |
Set/Change Column Bounds | glp_set_col_bnds setColBndGLPK |
Set Column Kind | glp_set_col_kind setColKindGLPK |
Set/Change Column Name | glp_set_col_name setColNameGLPK |
Set/Change Column Bounds | setColsBndsGLPK |
Set/Change Column Bounds and Objective Coefficients and/or Constant Term | setColsBndsObjCoefsGLPK |
Set Column Kind for a Set of Columns | setColsKindGLPK |
Set/Change Column Names | setColsNamesGLPK |
Set column status | glp_set_col_stat setColStatGLPK |
Sets the Default Control Parameters for the Interior-point Method. | glp_init_iptcp setDefaultIptParmGLPK |
Sets the Default Control Parameters for the MIP Method | glp_init_iocp setDefaultMIPParmGLPK |
Sets the Default Control Parameters for the Simplex Methods. | setDefaultSmpParmGLPK |
Sets/Changes Control Parameters or the Interior-point Method. | setInteriorParmGLPK |
Set (Replace) Column of the Constraint Matrix | glp_set_mat_col setMatColGLPK |
Set (Replace) Row of the Constraint Matrix | glp_set_mat_row setMatRowGLPK |
Sets/Changes Control Parameters or the MIP Methods | setMIPParmGLPK |
Set/Change Objective Coefficient or Constant Term | glp_set_obj_coef setObjCoefGLPK |
Set/Change Objective Coefficients and/or Constant Term | setObjCoefsGLPK |
Set/Change Optimization Direction Flag | glp_set_obj_dir setObjDirGLPK |
Set/Change Objective Function Name | glp_set_obj_name setObjNameGLPK |
Set/Change Problem Name | glp_set_prob_name setProbNameGLPK |
Set/Change all Row Bounds to Zero | setRhsZeroGLPK |
Set row scale factor | glp_set_rii setRiiGLPK |
Set/Change Row Bounds | glp_set_row_bnds setRowBndGLPK |
Set/Change Row Name | glp_set_row_name setRowNameGLPK |
Set/Change Row Bounds | setRowsBndsGLPK |
Set/Change Row Names | setRowsNamesGLPK |
Set row status | glp_set_row_stat setRowStatGLPK |
Sets/Changes Control Parameters or the Simplex Methods. | setSimplexParmGLPK |
Retrieve column scale factor | glp_set_sjj setSjjGLPK |
Solve LP Problem with the Interior-Point Method | glp_interior solveInteriorGLPK |
Solve MIP Problem with the Branch-and-Cut Method | glp_intopt solveMIPGLPK |
Solve LP Problem in Exact Arithmetic | glp_exact solveSimplexExactGLPK |
Solve LP Problem with the Primal or Dual Simplex Method | glp_simplex solveSimplexGLPK |
Sort Elements of the Constraint Matrix | glp_sort_matrix sortMatrixGLPK |
Translates a GLPK Status Value into a Human Readable String | status_codeGLPK |
Contruct Standard Initial LP Basis | glp_std_basis stdBasisGLPK |
Enable/Disable Terminal Output | glp_term_out termOutGLPK |
Problem unscaling | glp_unscale_prob unscaleProbGLPK |
Determine GLPK Callable Library Version | glp_version versionGLPK |
Warm Up LP Basis | glp_warm_up warmUpGLPK |
Write Interior-Point Solution to Text File | glp_write_ipt writeIptGLPK |
Write Problem Data in CPLEX LP Format | glp_write_lp writeLPGLPK |
Write MIP Solution to Text File | glp_write_mip writeMIPGLPK |
Write Problem Data in MPS Format | glp_write_mps writeMPSGLPK |
Write Problem Data in GLPK Format | glp_write_prob writeProbGLPK |
Write Basic Solution to Text File | glp_write_sol writeSolGLPK |