Exemplo n.º 1
0
static Scheme_Object *vector_to_values (int argc, Scheme_Object *argv[])
{
  Scheme_Thread *p;
  Scheme_Object *vec, **a;
  long len, start, finish, i;

  vec = argv[0];

  if (!SCHEME_VECTORP(vec))
    scheme_wrong_type("vector->values", "vector", 0, argc, argv);

  len = SCHEME_VEC_SIZE(vec);

  if (argc > 1)
    start = scheme_extract_index("vector->values", 1, argc, argv, len + 1, 0);
  else
    start = 0;
  if (argc > 2)
    finish = scheme_extract_index("vector->values", 2, argc, argv, len + 1, 0);
  else
    finish = len;

  if (!(start <= len)) {
    bad_index("vector->values", argv[1], vec, 0);
  }
  if (!(finish >= start && finish <= len)) {
    bad_index("vector->values", argv[2], vec, start);
  }

  len = finish - start;
  if (len == 1)
    return SCHEME_VEC_ELS(vec)[start];

  p = scheme_current_thread;
  if (p->values_buffer && (p->values_buffer_size >= len))
    a = p->values_buffer;
  else {
    a = MALLOC_N(Scheme_Object *, len);
    p->values_buffer = a;
    p->values_buffer_size = len;
  }

  p->ku.multiple.array = a;
  p->ku.multiple.count = len;

  for (i = 0; i < len; i++) {
    a[i] = SCHEME_VEC_ELS(vec)[start + i];
  }

  return SCHEME_MULTIPLE_VALUES;
}
Exemplo n.º 2
0
void lista::add(int x, int index)
{
  if(index<=ile_elem)
    przypisz (x, index);
  else
    throw bad_index();
}
Exemplo n.º 3
0
double &Sales::operator [](int i)
{
    if (i < 0 || i >= MONTHS)
        throw bad_index(i);

    return gross[i];
}
Exemplo n.º 4
0
Scheme_Object *
scheme_checked_vector_ref (int argc, Scheme_Object *argv[])
{
    intptr_t i, len;
    Scheme_Object *vec;

    vec = argv[0];
    if (SCHEME_CHAPERONEP(vec))
        vec = SCHEME_CHAPERONE_VAL(vec);

    if (!SCHEME_VECTORP(vec))
        scheme_wrong_contract("vector-ref", "vector?", 0, argc, argv);

    len = SCHEME_VEC_SIZE(vec);

    i = scheme_extract_index("vector-ref", 1, argc, argv, len, 0);

    if (i >= len)
        return bad_index("vector-ref", "", argv[1], argv[0], 0);

    if (!SAME_OBJ(vec, argv[0]))
        /* chaperone */
        return scheme_chaperone_vector_ref(argv[0], i);
    else
        return (SCHEME_VEC_ELS(vec))[i];
}
Exemplo n.º 5
0
Value SimpleString::aset(unsigned long i, Value new_value)
{
  if (i >= _capacity)
    return bad_index(i);
  _chars[i] = char_value(new_value);
  return new_value;
}
Exemplo n.º 6
0
inline Value SimpleBitVector::inline_aset(INDEX i, Value new_value)
{
    if (i >= _capacity)
        return bad_index(i);
    inline_setbit(i, check_bit(new_value));
    return new_value;
}
Exemplo n.º 7
0
Scheme_Object *
scheme_checked_vector_set(int argc, Scheme_Object *argv[])
{
    Scheme_Object *vec = argv[0];
    intptr_t i, len;

    if (SCHEME_CHAPERONEP(vec))
        vec = SCHEME_CHAPERONE_VAL(vec);

    if (!SCHEME_MUTABLE_VECTORP(vec))
        scheme_wrong_contract("vector-set!", "(and/c vector? (not/c immutable?))", 0, argc, argv);

    len = SCHEME_VEC_SIZE(vec);

    i = scheme_extract_index("vector-set!", 1, argc, argv, len, 0);

    if (i >= len)
        return bad_index("vector-set!", "", argv[1], argv[0], 0);

    if (!SAME_OBJ(vec, argv[0]))
        scheme_chaperone_vector_set(argv[0], i, argv[2]);
    else
        SCHEME_VEC_ELS(vec)[i] = argv[2];

    return scheme_void;
}
Exemplo n.º 8
0
void lista::remove(int i)
{
  if(isEmpty()==true)
    throw empty();
  else if(i>ind())
    throw bad_index();
  else
    zdejmij(i);
}
Exemplo n.º 9
0
int lista::get(int i)
{
  if(isEmpty()==true)
    throw empty();
  else if (i>ind())
    throw bad_index();
  else
    return wyswietl(i); 
}
Exemplo n.º 10
0
Value Vector_UB32::elt(INDEX i) const
{
  if (i >= length())
    return bad_index(i);
  if (_data)
    return make_unsigned_integer(_data[i]);
  else
    // displaced
    return _array->aref(i + _offset);
}
Exemplo n.º 11
0
Value Vector_UB32::aset(INDEX i, Value new_value)
{
  if (i >= _capacity)
    return bad_index(i);
  unsigned int n = check_ub32(new_value);
  if (_data)
    {
      _data[i] = n;
      return new_value;
    }
  else
    // displaced
    return _array->aset(i + _offset, new_value);
}
Exemplo n.º 12
0
Value SimpleArray_UB16_1::aset(INDEX i, Value new_value)
{
  if (i >= _capacity)
    return bad_index(i);
  if (fixnump(new_value))
    {
      long n = xlong(new_value);
      if (n >= 0 && n < 65536)
        {
          _data[i] = (unsigned short) n;
          return new_value;
        }
    }
  return signal_type_error(new_value, UB16_TYPE);
}
Exemplo n.º 13
0
Scheme_Object *
scheme_checked_vector_ref (int argc, Scheme_Object *argv[])
{
  long i, len;

  if (!SCHEME_VECTORP(argv[0]))
    scheme_wrong_type("vector-ref", "vector", 0, argc, argv);

  len = SCHEME_VEC_SIZE(argv[0]);

  i = scheme_extract_index("vector-ref", 1, argc, argv, len, 0);

  if (i >= len)
    return bad_index("vector-ref", argv[1], argv[0], 0);

  return (SCHEME_VEC_ELS(argv[0]))[i];
}
Exemplo n.º 14
0
Scheme_Object *
scheme_checked_vector_cas(int argc, Scheme_Object *argv[])
{
  Scheme_Object *vec = argv[0];
  intptr_t i, len;

  if (!SCHEME_MUTABLE_VECTORP(vec))
    scheme_wrong_contract("vector-cas!", "(and/c vector? (not/c immutable?) (not/c impersonator?))", 0, argc, argv);

  len = SCHEME_VEC_SIZE(vec);

  i = scheme_extract_index("vector-cas!", 1, argc, argv, len, 0);

  if (i >= len)
    return bad_index("vector-cas!", "", argv[1], argv[0], 0);

  return unsafe_vector_star_cas(argc, argv);
}
Exemplo n.º 15
0
Scheme_Object *
scheme_checked_vector_set(int argc, Scheme_Object *argv[])
{
  long i, len;

  if (!SCHEME_MUTABLE_VECTORP(argv[0]))
    scheme_wrong_type("vector-set!", "mutable vector", 0, argc, argv);

  len = SCHEME_VEC_SIZE(argv[0]);

  i = scheme_extract_index("vector-set!", 1, argc, argv, len, 0);

  if (i >= len)
    return bad_index("vector-set!", argv[1], argv[0], 0);

  (SCHEME_VEC_ELS(argv[0]))[i] = argv[2];

  return scheme_void;
}
Exemplo n.º 16
0
Scheme_Object *
scheme_checked_vector_star_ref (int argc, Scheme_Object *argv[])
{
  intptr_t i, len;
  Scheme_Object *vec;

  vec = argv[0];
  if (!SCHEME_VECTORP(vec))
    scheme_wrong_contract("vector*-ref", "(and/c vector? (not impersonator?))", 0, argc, argv);

  len = SCHEME_VEC_SIZE(vec);

  i = scheme_extract_index("vector*-ref", 1, argc, argv, len, 0);

  if (i >= len)
    return bad_index("vector*-ref", "", argv[1], argv[0], 0);

  return (SCHEME_VEC_ELS(vec))[i];
}
Exemplo n.º 17
0
Value SimpleString::elt(unsigned long i) const
{
  if (i >= _capacity)
    return bad_index(i);
  return make_character(_chars[i]);
}
Exemplo n.º 18
0
Value SimpleArray_UB16_1::elt(INDEX i) const
{
  if (i >= _capacity)
    return bad_index(i);
  return make_unsigned_fixnum(_data[i]);
}
Exemplo n.º 19
0
double & Sales::operator[](int i) throw(std::logic_error)
{
    if(i < 0 || i >= MONTHS)
        throw bad_index(i);
    return gross[i];
}
Exemplo n.º 20
0
 BOOST_UBLAS_INLINE 
 reference operator [] (size_type i) { 
     BOOST_UBLAS_CHECK (i < N, bad_index ()); 
     return data_ [i]; 
 } 
Exemplo n.º 21
0
static Scheme_Object *vector_to_values (int argc, Scheme_Object *argv[])
{
    Scheme_Thread *p;
    Scheme_Object *vec, **a, *plain_vec;
    intptr_t len, start, finish, i;

    vec = argv[0];
    if (SCHEME_NP_CHAPERONEP(vec))
        vec = SCHEME_CHAPERONE_VAL(vec);

    if (!SCHEME_VECTORP(vec))
        scheme_wrong_contract("vector->values", "vector?", 0, argc, argv);

    len = SCHEME_VEC_SIZE(vec);

    if (argc > 1)
        start = scheme_extract_index("vector->values", 1, argc, argv, len + 1, 0);
    else
        start = 0;
    if (argc > 2)
        finish = scheme_extract_index("vector->values", 2, argc, argv, len + 1, 0);
    else
        finish = len;

    if (!(start <= len)) {
        bad_index("vector->values", "starting ", argv[1], argv[0], 0);
    }
    if (!(finish >= start && finish <= len)) {
        bad_index("vector->values", "ending ", argv[2], argv[0], start);
    }

    len = finish - start;
    if (len == 1) {
        if (!SAME_OBJ(vec, argv[0]))
            return scheme_chaperone_vector_ref(argv[0], start);
        else
            return SCHEME_VEC_ELS(vec)[start];
    }

    if (!SAME_OBJ(vec, argv[0])) {
        plain_vec = scheme_make_vector(len, NULL);
        for (i = 0; i < len; i++) {
            vec = scheme_chaperone_vector_ref(argv[0], start + i);
            SCHEME_VEC_ELS(plain_vec)[i] = vec;
        }
        vec = plain_vec;
        start = 0;
    }

    p = scheme_current_thread;
    if (p->values_buffer && (p->values_buffer_size >= len))
        a = p->values_buffer;
    else {
        a = MALLOC_N(Scheme_Object *, len);
        p->values_buffer = a;
        p->values_buffer_size = len;
    }

    p->ku.multiple.array = a;
    p->ku.multiple.count = len;

    for (i = 0; i < len; i++) {
        a[i] = SCHEME_VEC_ELS(vec)[start + i];
    }

    return SCHEME_MULTIPLE_VALUES;
}
 // Element access
 BOOST_UBLAS_INLINE
 const_reference operator [] (size_type i) const {
     BOOST_UBLAS_CHECK (i < size_, bad_index ());
     return data_ [i];
 }
Exemplo n.º 23
0
inline Value SimpleBitVector::inline_aref(INDEX i) const
{
    if (i >= _capacity)
        return bad_index(i);
    return make_fixnum(inline_getbit(i));
}