This file is indexed.

/usr/include/osl/eval/ppair/piecePairWithStand.h is in libosl-dev 0.6.0-3.3.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
/* piecePairWithStand.h
 */
#ifndef EVAL_PPAIR_PIECEPAIRWITHSTAND_H
#define EVAL_PPAIR_PIECEPAIRWITHSTAND_H

#include "osl/eval/ppair/piecePairEval.h"
#include "osl/eval/pieceEval.h"

namespace osl
{
  namespace eval
  {
    namespace ppair
    {
      /**
       * 持駒の点数は表以外で管理するフレームワーク.  
       * 
       * (持駒の点数を表に書き込むと,同じ種類の駒を複数もっていると問
       * 題が起こるため)
       * => その後盤上の駒も管理 (点数を変更可能にするため)
       */
      template <class Table>
      class PiecePairWithStand
	: public PiecePairEval<PiecePairWithStand<Table>,Table>
      {
      public:
	static int standBonus(PtypeO ptypeo)
	{
	  assert(isBasic(getPtype(ptypeo)));
	  if (isMajorBasic(getPtype(ptypeo)))
	    return Table::Piece_Value.value(newPtypeO(getOwner(ptypeo), PAWN));
	  return 0;
	}
	static int standBonus(const SimpleState& state);

	typedef PiecePairEval<PiecePairWithStand<Table>, Table> base_t;
	explicit PiecePairWithStand(const SimpleState& state);
      protected:
	~PiecePairWithStand() {}
      public:
	static int diffAfterDropMove(const SimpleState& state,Square to,PtypeO ptypeo)
	{
	  const int bonus = standBonus(ptypeo);
	  return base_t::diffAfterDropMove(state,to,ptypeo) - bonus;
	}
	static int diffAfterSimpleMove(const SimpleState& state,
				       Square from, Square to, 
				       int promote_mask)
	{
	  int diff = base_t::diffAfterSimpleMove(state, from, to, promote_mask);
	  if (promote_mask) {
	    const Piece old_piece=state.pieceAt(from);
	    const PtypeO newPtypeO = promoteWithMask(old_piece.ptypeO(), promote_mask);
	    diff += Table::Piece_Value.promoteValue(newPtypeO);
	  }
	  return diff;
	}
	static int diffAfterCaptureMove(const SimpleState& state,
					Square from, Square to, 
					PtypeO victim,int promote_mask)
	{
	  const PtypeO captured = osl::captured(victim);
	  int bonus = standBonus(captured);
	  if (promote_mask) {
	    const Piece old_piece=state.pieceAt(from);
	    const PtypeO newPtypeO = promoteWithMask(old_piece.ptypeO(), promote_mask);
	    bonus += Table::Piece_Value.promoteValue(newPtypeO);
	  }
	  return base_t::diffAfterCaptureMove(state,from,to,victim,promote_mask) 
	    + Table::Piece_Value.captureValue(victim) + bonus;
	}
	static int diffWithUpdate(const SimpleState& new_state, Move last_move)
	{
	  int diff = base_t::diffWithUpdate(new_state, last_move);
	  if (last_move.isDrop()) {
	    const int bonus = standBonus(last_move.ptypeO());
	    return diff - bonus;
	  }
	  if (last_move.isPromotion())
	    diff += Table::Piece_Value.promoteValue(last_move.ptypeO());
	  if (last_move.capturePtype() != PTYPE_EMPTY) {
	    const PtypeO captured = last_move.capturePtypeO();
	    const int bonus = standBonus(osl::captured(captured));
	    diff += Table::Piece_Value.captureValue(captured) + bonus;
	  }
	  return diff;
	}
	static void setValues(const SimpleState&, container::PieceValues&);
      };
      
    } // namespace ppair
  } // namespace eval
} // namespace osl


#endif /* EVAL_PPAIR_PIECEPAIRWITHSTAND_H */
// ;;; Local Variables:
// ;;; mode:c++
// ;;; c-basic-offset:2
// ;;; End: