Как преобразовать функцию вызова макросов в функцию ядра?

2017 Update

Поскольку set_value был устаревшим с версии 0.21.0, вы должны теперь использовать at . Он может вставить список в ячейку, не поднимая ValueError, как loc. Я думаю, что это потому, что at всегда ссылается на одно значение, а loc может ссылаться на значения, а также на строки и столбцы.

df = pd.DataFrame(data={'A': [1, 2, 3], 'B': ['x', 'y', 'z']})

df.at[1, 'B'] = ['m', 'n']

df =
    A   B
0   1   x
1   2   [m, n]
2   3   z

0
задан Madhumitha 30 March 2019 в 23:57
поделиться

2 ответа

Нет, вышеупомянутый макрос нельзя преобразовать в функцию ceil in-kernel, так как в ядре такой функции нет. Хотя, если внимательно посмотреть вышеупомянутый макрос, то есть

#define CEIL(a, b)     (((a) + (b-1)) / (b))

Вышеприведенная функция является альтернативой для функции DIV_ROUND_UP в ядре. Таким образом, можно опустить макрос в ядре и использовать функцию DIV_ROUND_UP в функции вызова.

Это верно, если a и b оба являются целыми числами.

0
ответ дан Madhumitha 30 March 2019 в 23:57
поделиться

Макрос ядра CEIL(a, b) полностью отличается от библиотечной функции ceil() C. Он даже не принимает такое же количество аргументов!

Кроме того, функции с плавающей точкой (и математика с плавающей точкой в ​​целом) недоступны в ядре. Заголовок <math.h> не может использоваться в этой среде.

0
ответ дан duskwuff 30 March 2019 в 23:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: